import {Article, AddArticle, getarticleinfo, Like, Collect, addComment, Comment, delComment, likeComment} from "@/api";
//准备actions对象——响应组件中用户的动作
const actions = {
    // 获取文章标签和分类、封面，用于文章添加和编辑时的选择
    async getArticleInfo(state) {
        let info = await getarticleinfo()
        state.commit('setArticleInfo', info)
    },
    // 获取文章详情内容
    async getArticlecontent(state, obj) {
        let article = await Article(obj['nid'], obj['usernid'])
        state.commit('setArticleNid', obj['nid'])
        if (article['code'] === 200) {
            state.commit('setArticlecontent', article)
        }
    },
    // 获取文章评论
    async getComment(state, nid) {
        let comment = await Comment(nid)
        if (comment['code'] === 200) {
            state.commit('setComment', comment['comment'])
        }
    },
    // 添加文章
    async addArticle(state, Article_obj) {
        let info = await AddArticle(Article_obj)
        state.commit('setArticleNid', info['id'])
        return info
    },
    // 添加喜欢和删除喜欢
    async like(state, obj) {
        let info = await Like(obj['nid'], obj['usernid'])
        return info
    },
    // 添加收藏和删除收藏
    async collect(state, obj) {
        let info = await Collect(obj['nid'], obj['usernid'])
        return info
    },
    // 添加评论
    async addcomment(state, data) {
        let info = await addComment(data)
        return info
    },
    // 删除评论
    async delcomment(state, data) {
        let info = await delComment(data)
        return info
    },
    // 评论点赞
    async likecomment(state,nid) {
        let info = await likeComment(nid);
        return info
    },
}
//准备mutations对象——修改state中的数据
const mutations = {
    // 修改文章内容
    setArticlecontent(state, info) {
        state.Articlecontent = info['articles']
    },
    // 修改文章评论内容
    setComment(state, info) {
        state.Comment = info
    },
    // 修改文章标签和分类
    setArticleInfo(state, info) {
        state.ArticleInfo = info
    },
    // 修改当前的文章id
    setArticleNid(state, nid) {
        state.ArticleNid = nid
    },
    // 清空输入的文章内容
    cleanArticle_obj(state) {
        state.Article_obj = {
            title: '',  // 标题
            tag: '',   // 标签
            category: '',//类别
            abstract: '',//简介
            content: '',// 内容
            status: 0,  // 状态
            cover: [],//封面id
        }
    },
    //修改文章对象，用于编辑页面中的初始化
    setArticle_obj(state, info) {
        state.Article_obj = info
    },
}
//准备state对象——保存具体的数据
const state = {
    Articlecontent: {},  // 文章内容
    Comment: [],   // 文章评论内容
    // 文章对象,用于发布和编辑
    Article_obj: {
        title: '',  // 标题
        tag: '',   // 标签
        category: '',//类别
        abstract: '',//简介
        content: '',// 内容
        status: 0,  // 状态
        cover: -1,//封面id
        value: '',//文章初始值，用于编辑的使用
        fileList: [],//显示的封面列表，用于编辑的使用
    },
    ArticleInfo: {}, // 文章标签和分类、封面
    ArticleNid: -1,// 当前处理的文章id
}
// 准备getters对象——对数据进行加工
const getters = {}

export default {
    namespaced: true,
    actions,
    mutations,
    state,
    getters
}